NAND flash memory has become a commonly used format for storing quantities of data on devices such as USB Flash drives, digital cameras and MP3 players. A NAND flash memory is a form of rewritable memory that derives its name from the resemblance to a NAND logic gate. NAND flash is often used for applications utilizing large files of sequential data because NAND flash provides higher density, lower cost, and faster write and erase times compared to other forms of memory such as NOR flash. NAND flash is generally fast to erase and write, but slow to read non-sequential data through its serial interface.
NAND flash memories are accessed much like block devices such as hard disks or memory cards. When executing software from NAND memories, their contents must first be paged into a memory-mapped random access memory (RAM) and executed in the RAM. This makes the presence of a memory management unit (MMU) in the system necessary. For example, when using NAND flash as program ROM, the system can include a large SRAM to store the program retrieved from the NAND flash. The program can then be executed in the SRAM.